package org.ciallo.simplemusicplayer.data.model;

import java.util.Objects;

/**
 * @author Jukomu
 * @Description: 用于在列表中显示专辑信息的临时数据模型
 * @Package: org.ciallo.simplemusicplayer.data.model
 * @Project: SimpleMusicPlayer
 * @name: AlbumInfo
 * @Date: 2025/6/2-22:50
 * @Filename: AlbumInfo
 */
public class AlbumInfo {
    public final long albumId; // MediaStore.Audio.Albums._ID 或 Song.albumIdRoom
    public final String albumName;
    public final String artistName; // 该专辑的艺术家
    public final int songCount;
    public final String albumArtUri; // 专辑封面URI
    public String albumPinyin;   // 专辑名拼音，用于排序

    public AlbumInfo(long albumId, String albumName, String artistName, int songCount, String albumArtUri, String albumPinyin) {
        this.albumId = albumId;
        this.albumName = albumName;
        this.artistName = artistName;
        this.songCount = songCount;
        this.albumArtUri = albumArtUri;
        this.albumPinyin = albumPinyin;
    }

    // 重写 equals 和 hashCode
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        AlbumInfo albumInfo = (AlbumInfo) o;
        return albumId == albumInfo.albumId &&
                songCount == albumInfo.songCount &&
                Objects.equals(albumName, albumInfo.albumName) &&
                Objects.equals(artistName, albumInfo.artistName) &&
                Objects.equals(albumArtUri, albumInfo.albumArtUri) &&
                Objects.equals(albumPinyin, albumInfo.albumPinyin);
    }

    @Override
    public int hashCode() {
        return Objects.hash(albumId, albumName, artistName, songCount, albumArtUri, albumPinyin);
    }
}
